
#ifndef _H_agt_yuma_arp
#define _H_agt_yuma_arp
/* 

 * Copyright (c) 2008 - 2012, Andy Bierman, All Rights Reserved.
 * All Rights Reserved.
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 * Instrumentation Written by Igor Smolyar

*** Generated by yangdump 1.15.1351

    module yuma-arp
    revision 2011-08-25

    namespace http://netconfcentral.org/ns/yuma-arp
    organization Netconf Central

 */

#include <xmlstring.h>

#ifndef _H_dlq
#include "dlq.h"
#endif

#ifndef _H_ncxtypes
#include "ncxtypes.h"
#endif

#ifndef _H_status
#include "status.h"
#endif

#ifdef __cplusplus
extern "C" {
#endif

/********************************************************************
*								    *
*			 C O N S T A N T S			    *
*								    *
*********************************************************************/

#define y_yuma_arp_M_yuma_arp (const xmlChar *)"yuma-arp"
#define y_yuma_arp_R_yuma_arp (const xmlChar *)"2012-01-13"

#define y_yuma_arp_N_arp (const xmlChar *)"arp"
#define y_yuma_arp_N_arp_settings (const xmlChar *)"arp-settings"
#define y_yuma_arp_N_dynamic_arp (const xmlChar *)"dynamic-arp"
#define y_yuma_arp_N_dynamic_arps (const xmlChar *)"dynamic-arps"
#define y_yuma_arp_N_ip_address (const xmlChar *)"ip-address"
#define y_yuma_arp_N_mac_address (const xmlChar *)"mac-address"
#define y_yuma_arp_N_maximum_entries (const xmlChar *)"maximum-entries"
#define y_yuma_arp_N_static_arp (const xmlChar *)"static-arp"
#define y_yuma_arp_N_static_arps (const xmlChar *)"static-arps"
#define y_yuma_arp_N_validity_timeout (const xmlChar *)"validity-timeout"

#define MAC_DYNAMIC (const xmlChar *)"0x2"
#define ADDRESS_SIZE	32
#define HW_OCTETS 	6
#define ARP_MAX_ENTRIES	"cache_size"
#define ARP_TIMEOUT	"validity_timeout"
#define TRESH1		"/proc/sys/net/ipv4/neigh/default/gc_thresh1"
#define TRESH2		"/proc/sys/net/ipv4/neigh/default/gc_thresh2"
#define TRESH3		"/proc/sys/net/ipv4/neigh/default/gc_thresh3"
#define NEIGH_DIR	"/proc/sys/net/ipv4/neigh/"

enum { ARP_ADD, ARP_DEL };

/********************************************************************
*								    *
*			     T Y P E S				    *
*								    *
*********************************************************************/

/* container /arp/arp-settings */
typedef struct y_yuma_arp_T_arp_arp_settings_ {
    uint32 maximum_entries;
    uint32 validity_timeout;
} y_yuma_arp_T_arp_arp_settings;

/* list /arp/static-arps/static-arp */
typedef struct y_yuma_arp_T_arp_static_arps_static_arp_ {
    dlq_hdr_t qhdr;
    xmlChar *ip_address;
    xmlChar *mac_address;
} y_yuma_arp_T_arp_static_arps_static_arp;

/* container /arp/static-arps */
typedef struct y_yuma_arp_T_arp_static_arps_ {
    dlq_hdr_t static_arp;
} y_yuma_arp_T_arp_static_arps;

/* list /arp/dynamic-arps/dynamic-arp */
typedef struct y_yuma_arp_T_arp_dynamic_arps_dynamic_arp_ {
    dlq_hdr_t qhdr;
    xmlChar *ip_address;
    xmlChar *mac_address;
} y_yuma_arp_T_arp_dynamic_arps_dynamic_arp;

/* container /arp/dynamic-arps */
typedef struct y_yuma_arp_T_arp_dynamic_arps_ {
    dlq_hdr_t dynamic_arp;
} y_yuma_arp_T_arp_dynamic_arps;

/* container /arp */
typedef struct y_yuma_arp_T_arp_ {
    y_yuma_arp_T_arp_arp_settings arp_settings;
    y_yuma_arp_T_arp_static_arps static_arps;
    y_yuma_arp_T_arp_dynamic_arps dynamic_arps;
} y_yuma_arp_T_arp;


/********************************************************************
*								    *
*			F U N C T I O N S			    *
*								    *
*********************************************************************/

/* yuma-arp module init 1 */
extern status_t
    y_yuma_arp_init (
        const xmlChar *modname,
        const xmlChar *revision);

/* yuma-arp module init 2 */
extern status_t
    y_yuma_arp_init2 (void);

/* yuma-arp module cleanup */
extern void
    y_yuma_arp_cleanup (void);

#ifdef __cplusplus
}  /* end extern 'C' */
#endif

#endif
